# -*- coding: UTF-8 -*-

from AplicadorDeReglasAumentativos import *
import unittest

class AplicadorDeReglasDeSufijosTest(unittest.TestCase):
	
	def setUp(self):
		#Tomo aumentativos, pero podria ser cualqueira
		self.aplicador = AplicadorDeReglasAumentativos() 
		
	def test_aplicarReglasParaToken(self):
		self.assertEquals(self.aplicador.aplicarReglasParaToken("mazazo"),[("mazazo","mazo")])
		self.assertEquals(self.aplicador.aplicarReglasParaToken("mazazazo"),[("mazazazo","mazazo")])
		self.assertEquals(self.aplicador.aplicarReglasParaToken("mazito"),[])

	def test_sufijo(self):
		self.assertTrue(self.aplicador.tieneSufijo("azo","mazazo"))
		self.assertTrue(self.aplicador.tieneSufijo("sufijote","elsufijote"))
		self.assertFalse(self.aplicador.tieneSufijo("algo","a"))

	def test_aplicar(self):
		reglas = [("ote","o"),("algo","nada")]
		self.assertEquals(self.aplicador.aplicar(reglas,"mazote"),["mazo"])
		self.assertEquals(self.aplicador.aplicar(reglas,"empaalgo"),["empanada"])
		self.assertEquals(self.aplicador.aplicar(reglas,"asdasd"),[])
		reglas.append(("ote","a"))
		test = self.aplicador.aplicar(reglas,"mazote")
		test.sort()
		self.assertEquals(test,["maza","mazo"])
		
		
if __name__ == "__main__": 
	unittest.main()
